Page({
  data: {
    list: [],
    index:0,
    hasMoreData: true,
    start:0,
    pageSize:10,
    Type:'',
    keyWord:"",
    check:true,
    head:[{
      name:"分享",
      icon:"../../images/分享.png"
    }],
    actions: [
    {
      name: '分享',
      icon: '../../images/分享.png'
    },
    {
      name: '重命名',
      icon: '../../images/重命名.png',
    },
    {
      name: '删除',
      icon: '../../images/删除.png',
    }
  ],
  visible: false
  },
  //上拉加载数据
  onReachBottom: function() {
    const self = this;
    // 执行上拉加载更多的逻辑，如请求更多数据
    if (this.data.hasMoreData) {
      // 加载更多数据的方法
      // 显示加载提示框
      wx.showLoading({
        title: '加载中', // 提示信息
        mask: true // 显示透明蒙层防止触摸穿透
      });
      this.data.start=this.data.start+10;
      this.data.pageSize=this.data.pageSize+10;
      this.fileInfo();
    } else {
      // 没有更多数据时的处理
      wx.showToast({
        title: '人家也是有底线~',
        icon: 'none'
      });
    }
  },
  onLoad:function(options){
    console.log(options)
    this.data.Type=options.Type||""
    console.log(this.data.Type)
    this.data.keyWord=options.keyWord
    this.fileInfo();
  },
  //原始数据请求
  fileInfo(){
    const self=this;

    if(this.data.Type==""){
      self.keyInfo();
      return;    
    }
    wx.request({
      url: 'https://zdw666.fun/wjy/queryFileInfo',
      method:"POST",
      data:{
        "openId":wx.getStorageSync("openid"),
        "fileType":self.data.Type,
        "start":self.data.start,
        "pageSize":self.data.pageSize,
        "keyWord":''
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded' // 设置请求头
      },
      success: function(res) {
        console.log(res)
        const updatedFiles = res.data.data.map(file => {
          // 假设我们需要移除fileurl中的某些部分，例如移除"nullbucket"及其之后的部分
          let newFileUrl;
          if(file.filetype=="视频"){
            newFileUrl="../../images/shi.png"
          }else if(file.filetype=="其他"){
            newFileUrl="../../images/qi.png"
          }else if(file.filetype=="文档"){
            if(/\.(doc|docx)$/i.test(file.filename)){
              newFileUrl="../../images/docx.png"
            }else if(/\.(ppt|pptx)$/i.test(file.filename)){
              newFileUrl="../../images/ppt.png"
            }else if(/\.(pdf)$/i.test(file.filename)){
              newFileUrl="../../images/PDF.png"
            }else if(/\.(xls|xlsx)$/i.test(file.filename)){
              newFileUrl="../../images/xlxs.png"
            }
          }else{
            newFileUrl=file.fileurl.replace(/http:\/\/124.220.72.142:9000/, 'https://zdw666.fun');
          }
          return { ...file, fileurl: "",realUrl :newFileUrl };
        });
        if(updatedFiles.length<6){
          self.data.hasMoreData=false;
        }
        const List = self.data.list.concat(updatedFiles)
        // 隐藏加载提示框
        wx.hideLoading();
        self.setData({
          "list": List
        });
      },
      fail: function(err) {
        wx.showToast({
          title: '图片加载错误，请稍后再试！',
          icon: 'none'
        });
      }
    })
  },
  keyInfo(){
    const self = this;
    wx.request({
      url: 'https://zdw666.fun/wjy/queryFileInfo',
      method:"POST",
      header: {
        'content-type': 'application/x-www-form-urlencoded' // 设置请求头
      },
      data:{
        "openId":wx.getStorageSync("openid"),
        "keyWord":self.data.keyWord,
        "start":self.data.start,
        "pageSize":self.data.pageSize,
        "fileType":''
      },success(res){
        console.log(res)
        const updatedFiles = res.data.data.map(file => {
          // 假设我们需要移除fileurl中的某些部分，例如移除"nullbucket"及其之后的部分
          let newFileUrl;
          if(file.filetype=="视频"){
            newFileUrl="../../images/shi.png"
          }else if(file.filetype=="其他"){
            newFileUrl="../../images/qi.png"
          }else if(file.filetype=="文档"){
            if(/\.(doc|docx)$/i.test(file.filename)){
              newFileUrl="../../images/docx.png"
            }else if(/\.(ppt|pptx)$/i.test(file.filename)){
              newFileUrl="../../images/ppt.png"
            }else if(/\.(pdf)$/i.test(file.filename)){
              newFileUrl="../../images/PDF.png"
            }else if(/\.(xls|xlsx)$/i.test(file.filename)){
              newFileUrl="../../images/xlxs.png"
            }
          }else{
            newFileUrl=file.fileurl.replace(/http:\/\/124.220.72.142:9000/, 'https://zdw666.fun');
          }
          return { ...file, fileurl: "",realUrl :newFileUrl };
        });
        if(updatedFiles.length<6){
          self.data.hasMoreData=false;
        }
        const List = self.data.list.concat(updatedFiles)
        // 隐藏加载提示框
        wx.hideLoading();
        self.setData({
          "list": List
        });
      },fail(error){
        wx.showToast({
          title: '图片加载错误，请稍后再试！',
          icon: 'none'
        });
      }
    })
  },
  //实现懒加载，等待初始页面加载完毕再绑定，全部在窗口时才加载网络资源<减轻服务器压力>
  loadImages: function(e) {
    if(!e)return;
    const idx = e.currentTarget.dataset.id;
    for (let i = 0; i < this.data.list.length; i++) {
      if (idx !== i) continue;
      const intersectionObserver = wx.createIntersectionObserver(this, {
        thresholds: [1] 
      });
      intersectionObserver.relativeToViewport({ bottom: 0 }).observe(`#image-${i}`, (res) => {
        if (res.intersectionRatio > 0) {
          // 图片进入可视区域，加载图片
          this.setData({
            [`list[${i}].fileurl`]: this.data.list[i].realUrl
          });
        } 
      });
    }
  },
  //弹窗显隐藏
  handleClick(e) {
    if(e.type=="tap"){
      this.data.index=e.currentTarget.dataset.id
    }
    const head=[{
      name:this.data.list[this.data.index].filename,
      icon:this.data.list[this.data.index].fileurl
    }]
    this.setData({
      visible: !this.data.visible,
      head:head
    })
  },
  handleClickItem({detail}) {
    if (detail.index === 0) {
      this.onShare();
    }else if(detail.index === 1){
      wx.showToast({
        title: '暂未开发',
        icon: 'none'
      });
    }else if(detail.index === 2){
      wx.showToast({
        title: '暂未开发',
        icon: 'none'
      });
    }
  },
  onShare: function() {
    // 执行分享操作
    wx.showLoading({
      title: '加载中', // 提示信息
      mask: true // 显示透明蒙层防止触摸穿透
    });
    const self = this;
    const url = 'https://zdw666.fun/wjy/download?folderName='+this.data.list[self.data.index].foldername
    const name = this.data.list[self.data.index].filename
    const type = name.split(".").pop()
    wx.downloadFile({
      url: url, // 下载url
      success (res) {
        console.log('ressss',res)
        if(res.statusCode == 200) {
          // 隐藏加载提示框
          wx.hideLoading();
          console.log('res.statusCode',res)
            // that.openFileEvs(res)
            wx.shareFileMessage({
              filePath: res.tempFilePath,
              fileType: type,
              success(data) {
                console.log('转发成功！！！',data)
              }
              ,fileName:name
              ,fail: console.error,
            })
        }
      },fail: console.error,
    })
  },
  show:function(e){
    //打开图片
    let newfilepath = this.data.list[e.currentTarget.dataset.id].fileurl
    let type=this.data.list[e.currentTarget.dataset.id].filetype
    let foldername=this.data.list[e.currentTarget.dataset.id].foldername
    let name = this.data.list[e.currentTarget.dataset.id].filename
    if(type=="图片"){
      wx.getImageInfo({
        src: newfilepath,
        success: function (res) {
          console.log('获取图片信息成功', res);
          wx.previewImage({
            current: newfilepath, // 当前显示图片的http链接
            urls: [newfilepath] // 需要预览的图片http链接列表
          });
        },fail: function (err) {
          wx.showToast({
            title: '图片加载错误，请稍后再试！',
            icon: 'none'
          });
        }
      });
    }else if(type=="文档"){
      wx.downloadFile({
        url: "https://zdw666.fun/wjy/download?folderName=" + foldername, // 确保这里的URL是正确的
        success: function(res) {
          if (res.statusCode === 200) {
            console.log('下载成功', res.tempFilePath);
            // 这里可以使用下载的文件，例如打开文件
            wx.openDocument({
              filePath: res.tempFilePath,
              fileType:name.split('.').pop(),
              success: function (openRes) {
                console.log('打开文档成功');
              },
              fail: function (openErr) {
                console.log('打开文档失败', openErr);
              }
            });
          } else {
            console.log('下载失败，状态码：', res.statusCode);
          }
        },
        fail: function(err) {
          console.log('下载失败', err);
        }
      });
    }
  }
});